package com.credithc.fastdfs.api.util;

import java.util.UUID;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;

/** 
 * <br>类 名: CommonUtil 
 * <br>描 述: 普通工具类
 * <br>作 者: checkSun
 * <br>创 建： 2015年6月19日 
 * <br>版 本：v1.0.0 
 * <br>
 * <br>历 史: (版本) 作者 时间 注释
 */
public class CommonUtil {
	/**
	 * <br>描 述： 获取客户端IP
	 * <br>作 者：checkSun
	 * <br>历 史: (版本) 作者 时间 注释
	 * @param request
	 * @return
	 */
	public static String getIp(HttpServletRequest request) {
		String ip = request.getHeader("X-Forwarded-For");
		if (StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
			/* 多次反向代理后会有多个ip值，第一个ip才是真实ip*/
			int index = ip.indexOf(",");
			if (index != -1) {
				return ip.substring(0, index);
			} else {
				return ip;
			}
		}
		ip = request.getHeader("X-Real-IP");
		if (StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
			return ip;
		}
		return request.getRemoteAddr();
	}
	
	/**
	 * <br>描 述：判断字符串是否为另一个字符串拆分的子串
	 * <br>作 者：checkSun
	 * <br>历 史: (版本) 作者 时间 注释
	 * @param parent
	 * @param child
	 * @param reg
	 * @return
	 */
	public static boolean isContainsStr(String parent,String child,String reg ){
		boolean result=false;
		if(parent==null || parent.equals("")){
			return false;
		}
		
		for(String tmp:parent.split(reg)){
			if(tmp.trim().equals(child.trim())){
				result=true;
				break;
			}
		}
		
		return result;
	}
	
	/**
	 * <br>描 述：获取去符号大写UUID 
	 * <br>作 者：zhaoc
	 * <br>历 史: (版本) 作者 时间 注释
	 * @return
	 */
	public static String getUpperUUID() {
		return UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();
	}
}
